/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package suministros.ejb30.entity;

import java.io.Serializable;
import java.util.List;
import javax.persistence.Basic;
import javax.persistence.CascadeType;
import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.GenerationType;
import javax.persistence.Id;
import javax.persistence.NamedQueries;
import javax.persistence.NamedQuery;
import javax.persistence.OneToMany;
import javax.persistence.Table;

/**
 *
 * @author Luis_Angel
 */
@Entity
@Table(name = "Impuesto")
@NamedQueries({
    @NamedQuery(name = "Impuesto.findAll", query = "SELECT i FROM Impuesto i"),
    @NamedQuery(name = "Impuesto.findByIdImpuesto", query = "SELECT i FROM Impuesto i WHERE i.idImpuesto = :idImpuesto"),
    @NamedQuery(name = "Impuesto.findByDescripcionImpuesto", query = "SELECT i FROM Impuesto i WHERE i.descripcionImpuesto = :descripcionImpuesto"),
    @NamedQuery(name = "Impuesto.findByDescripcionLargaImpuesto", query = "SELECT i FROM Impuesto i WHERE i.descripcionLargaImpuesto = :descripcionLargaImpuesto"),
    @NamedQuery(name = "Impuesto.findByCtaDebe", query = "SELECT i FROM Impuesto i WHERE i.ctaDebe = :ctaDebe"),
    @NamedQuery(name = "Impuesto.findByCtaHaber", query = "SELECT i FROM Impuesto i WHERE i.ctaHaber = :ctaHaber"),
    @NamedQuery(name = "Impuesto.findByEfecto", query = "SELECT i FROM Impuesto i WHERE i.efecto = :efecto")})
public class Impuesto implements Serializable {
    private static final long serialVersionUID = 1L;
    @Id
    @Basic(optional = false)
    @Column(name = "id_impuesto")
    @GeneratedValue(strategy=GenerationType.IDENTITY)
    private Integer idImpuesto;
    @Column(name = "descripcion_impuesto")
    private String descripcionImpuesto;
    @Column(name = "descripcion_larga_impuesto")
    private String descripcionLargaImpuesto;
    @Column(name = "cta_debe")
    private String ctaDebe;
    @Column(name = "cta_haber")
    private String ctaHaber;
    @Column(name = "efecto")
    private Character efecto;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "impuesto")
    private List<DetalleOrdenImpuesto> detalleOrdenImpuestoList;
    @OneToMany(cascade = CascadeType.ALL, mappedBy = "impuesto")
    private List<DetalleImpuestoFactor> detalleImpuestoFactorList;

    public Impuesto() {
    }

    public Impuesto(Integer idImpuesto) {
        this.idImpuesto = idImpuesto;
    }

    public Integer getIdImpuesto() {
        return idImpuesto;
    }

    public void setIdImpuesto(Integer idImpuesto) {
        this.idImpuesto = idImpuesto;
    }

    public String getDescripcionImpuesto() {
        return descripcionImpuesto;
    }

    public void setDescripcionImpuesto(String descripcionImpuesto) {
        this.descripcionImpuesto = descripcionImpuesto;
    }

    public String getDescripcionLargaImpuesto() {
        return descripcionLargaImpuesto;
    }

    public void setDescripcionLargaImpuesto(String descripcionLargaImpuesto) {
        this.descripcionLargaImpuesto = descripcionLargaImpuesto;
    }

    public String getCtaDebe() {
        return ctaDebe;
    }

    public void setCtaDebe(String ctaDebe) {
        this.ctaDebe = ctaDebe;
    }

    public String getCtaHaber() {
        return ctaHaber;
    }

    public void setCtaHaber(String ctaHaber) {
        this.ctaHaber = ctaHaber;
    }

    public Character getEfecto() {
        return efecto;
    }

    public void setEfecto(Character efecto) {
        this.efecto = efecto;
    }

    public List<DetalleOrdenImpuesto> getDetalleOrdenImpuestoList() {
        return detalleOrdenImpuestoList;
    }

    public void setDetalleOrdenImpuestoList(List<DetalleOrdenImpuesto> detalleOrdenImpuestoList) {
        this.detalleOrdenImpuestoList = detalleOrdenImpuestoList;
    }

    public List<DetalleImpuestoFactor> getDetalleImpuestoFactorList() {
        return detalleImpuestoFactorList;
    }

    public void setDetalleImpuestoFactorList(List<DetalleImpuestoFactor> detalleImpuestoFactorList) {
        this.detalleImpuestoFactorList = detalleImpuestoFactorList;
    }

    @Override
    public int hashCode() {
        int hash = 0;
        hash += (idImpuesto != null ? idImpuesto.hashCode() : 0);
        return hash;
    }

    @Override
    public boolean equals(Object object) {
        // TODO: Warning - this method won't work in the case the id fields are not set
        if (!(object instanceof Impuesto)) {
            return false;
        }
        Impuesto other = (Impuesto) object;
        if ((this.idImpuesto == null && other.idImpuesto != null) || (this.idImpuesto != null && !this.idImpuesto.equals(other.idImpuesto))) {
            return false;
        }
        return true;
    }

    @Override
    public String toString() {
        return "suministros.ejb30.entity.Impuesto[idImpuesto=" + idImpuesto + "]";
    }

}
